#include <bits/stdc++.h>
using namespace std;

const int P = 1e9 + 7;

int main() {
    int n;
    cin >> n;
    vector<int> dp(2, 1);
    while(n % 2 == 0) {
        vector<int> newdp(dp.size() * 2 - 1);
        for(int i = 0; i < dp.size(); i ++)
            newdp[i * 2] = dp[i];
        swap(dp, newdp);
        for(int i = 1; i < dp.size(); i ++)
            dp[i] = (dp[i] + dp[i - 1]) % P;
        n >>= 1;
    }
    cout << dp.back() << "\n";
    return 0;
}